home *** CD-ROM | disk | FTP | other *** search
- import com.siemens.mp.io.File;
- import java.io.IOException;
- import java.io.InputStream;
- import javax.microedition.io.Connector;
- import javax.microedition.io.HttpConnection;
- import javax.microedition.lcdui.Command;
- import javax.microedition.lcdui.CommandListener;
- import javax.microedition.lcdui.Displayable;
- import javax.microedition.lcdui.Form;
- import javax.microedition.lcdui.Gauge;
- import javax.microedition.lcdui.Screen;
- import javax.microedition.lcdui.StringItem;
-
- // $FF: renamed from: b
- class class_0 extends Form implements Runnable, CommandListener {
- // $FF: renamed from: long javax.microedition.lcdui.Gauge
- Gauge field_0 = null;
- // $FF: renamed from: int javax.microedition.lcdui.StringItem
- StringItem field_1;
- // $FF: renamed from: try javax.microedition.lcdui.StringItem
- StringItem field_2;
- // $FF: renamed from: char com.siemens.mp.io.File
- File field_3;
- // $FF: renamed from: if java.lang.String
- String field_4;
- // $FF: renamed from: new java.lang.String
- String field_5;
- // $FF: renamed from: goto java.lang.String
- String field_6;
- // $FF: renamed from: for int
- int field_7 = -1;
- // $FF: renamed from: else long
- long field_8;
- // $FF: renamed from: do long
- long field_9;
- // $FF: renamed from: case long
- long field_10;
- // $FF: renamed from: byte long
- long field_11;
- // $FF: renamed from: a boolean
- boolean field_12;
-
- public class_0(String var1) {
- super("");
- this.field_4 = var1;
- int var2 = this.field_4.length();
- int var3 = this.field_4.lastIndexOf(47);
- if (var3 == var2 - 1) {
- var2 = var3;
- var3 = this.field_4.lastIndexOf(47, var3 - 1);
- }
-
- this.field_5 = this.field_4.substring(var3 + 1, var2);
- this.field_6 = null;
- this.field_3 = new File();
- this.field_12 = false;
- this.field_11 = 0L;
-
- try {
- this.field_7 = this.field_3.open(this.field_5);
- this.field_8 = (long)this.field_3.length(this.field_7);
- } catch (Exception var5) {
- this.field_12 = true;
- }
-
- ((Screen)this).setTitle("Downloading...");
- this.field_1 = new StringItem(this.field_5, " Connecting...");
- this.field_2 = new StringItem("", " ");
- this.field_0 = new Gauge("", false, 30, 0);
- ((Form)this).append(this.field_1);
- ((Form)this).append(this.field_0);
- ((Form)this).append(this.field_2);
- ((Displayable)this).addCommand(new Command("Cancel", 3, 1));
- ((Displayable)this).setCommandListener(this);
- this.field_10 = System.currentTimeMillis();
- (new Thread(this)).start();
- }
-
- public void commandAction(Command var1, Displayable var2) {
- this.field_12 = true;
- }
-
- // $FF: renamed from: a (int) void
- void method_0(int var1) {
- long var2 = System.currentTimeMillis();
- if (var2 - this.field_10 >= 1000L) {
- this.field_10 = var2;
- long var4 = 900L;
- long var8 = var2 - this.field_9;
- long var6 = this.field_8 - (long)var1;
- if (var8 > 4000L && var1 > 4000) {
- var4 = (long)var1 / (var8 / 1000L);
- if (var4 < 100L) {
- var4 = 100L;
- }
- }
-
- long var10 = var6 / var4;
- long var12 = var10 / 60L;
- var10 %= 60L;
- String var14;
- if (var10 < 10L) {
- var14 = " Remaining: " + var12 + ":0" + var10;
- } else {
- var14 = " Remaining: " + var12 + ":" + var10;
- }
-
- this.field_1.setText(var14);
- this.field_0.setValue(var1);
- this.field_2.setText(" " + var1 / 1024 + "/" + this.field_8 / 1024L + " k");
- }
- }
-
- public void run() {
- Book var1 = Book.try();
- if (!this.field_12) {
- while(!var1.aP) {
- Thread.currentThread();
- Thread.yield();
- }
-
- this.method_1(this.field_4);
- }
-
- var1.a(this, this.field_5, this.field_12, this.field_6);
- }
-
- // $FF: renamed from: a (java.lang.String) long
- private long method_1(String var1) {
- HttpConnection var2 = null;
- InputStream var3 = null;
- byte[] var4 = new byte[512];
- long var5 = 0L;
- boolean var7 = false;
-
- try {
- var2 = (HttpConnection)Connector.open(var1);
- if (var2 == null) {
- this.field_6 = "Connection failed";
- } else {
- var3 = var2.openInputStream();
- if (var3 == null) {
- this.field_6 = "No inputstream";
- } else {
- int var8 = var2.getResponseCode();
- if (var8 != 200) {
- if (var8 == 404) {
- this.field_6 = "Not found (404)";
- } else {
- this.field_6 = "Http error " + var8;
- }
- } else {
- var5 = var2.getLength();
- this.field_8 = var5;
- int var9 = File.spaceAvailable();
- if (var5 > (long)var9) {
- this.field_6 = "Need " + var5 / 1024L + "k free";
- ((Screen)this).setTitle(this.field_6);
- this.field_8 = (long)(var9 - 4096);
- this.field_8 = Math.max(1024L, this.field_8);
- var5 = this.field_8;
- }
-
- if (this.field_8 > (long)var9) {
- this.field_6 = "MMC is full!";
- } else {
- this.field_9 = System.currentTimeMillis();
- this.field_0.setMaxValue((int)this.field_8);
-
- for(; this.field_11 < var5; this.method_0((int)this.field_11)) {
- if (this.field_12) {
- this.field_6 = "Download cancelled";
- break;
- }
-
- int var10 = (int)(var5 - this.field_11);
- if (var10 > var4.length) {
- var10 = var4.length;
- }
-
- var10 = var3.read(var4, 0, var10);
- if (var10 > 0) {
- this.field_11 += (long)var10;
- this.field_3.write(this.field_7, var4, 0, var10);
- if (!var7) {
- Book.try().f(this.field_5);
- var7 = true;
- }
- }
- }
- }
- }
- }
- }
- } catch (IOException var12) {
- this.field_6 = "IO Error";
- } catch (IllegalArgumentException var13) {
- this.field_6 = "Cannot open";
- } catch (Exception var14) {
- this.field_6 = "Unknown error";
- }
-
- try {
- int var16 = this.field_3.length(this.field_7);
- if (var16 != 0 && this.field_6 == null) {
- if ((long)var16 < this.field_8) {
- byte[] var17 = "\r\n<<aborted>>\r\n".getBytes();
- this.field_3.write(this.field_7, var17, 0, var17.length);
- this.field_3.close(this.field_7);
- } else {
- this.field_3.close(this.field_7);
- }
- } else {
- this.field_3.close(this.field_7);
- File.delete(this.field_5);
- }
-
- var2.close();
- var3.close();
- } catch (Exception var11) {
- }
-
- return this.field_11;
- }
- }
-